package top.jiangqiang.qianyi.generator.model;

import lombok.Builder;
import lombok.Data;
import lombok.Value;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.util.SystemUtil;
import org.jetbrains.annotations.NotNull;
import top.jiangqiang.qianyi.common.base.service.BaseDbService;
import top.jiangqiang.qianyi.common.base.service.impl.BaseDbServiceImpl;

@Builder
@Data
@Value
public class DbServiceFileConfig {
    /**
     * 文件名称格式化字符串，可使用%s代替当前实体名
     */
    @Builder.Default
    String serviceFormatName = "%sDbService";
    /**
     * 模板路径
     */
    @Builder.Default
    String serviceTemplatePath = "/templates/service.java";
    /**
     * 文件路径
     */
    @Builder.Default
    String serviceFilePath = SystemUtil.get("user.dir") + "/generated/dbService";
    /**
     * 是否生成文件
     */
    @Builder.Default
    boolean generateServiceFile = true;
    /**
     * 是否覆盖已有文件（默认 false）
     */
    @Builder.Default
    boolean fileOverride = false;
    /**
     * 父类class
     */
    @Builder.Default
    Class<?> serviceSuperClass = BaseDbService.class;

    /**
     * 文件名称格式化字符串，可使用%s代替当前实体名
     */
    @Builder.Default
    String serviceImplFormatName = "%sDbServiceImpl";
    /**
     * 模板路径
     */
    @NotNull("DbService模板路径不能为空")
    @Builder.Default
    String serviceImplTemplatePath = "/templates/serviceImpl.java";
    /**
     * 文件路径
     */
    @Builder.Default
    String serviceImplFilePath = StrUtil.replace(SystemUtil.get("user.dir"), "\\", "/") + "/generated/service/impl";
    /**
     * 是否生成文件
     */
    @Builder.Default
    boolean generateServiceImplFile = true;
    /**
     * 父类class
     */
    @Builder.Default
    Class<?> serviceImplSuperClass = BaseDbServiceImpl.class;

}
